﻿#region Header

/*
Remote views based on linq
By

Pascal Hauser 
Dipl. Ing. in Informatik, Hochschule für Technik Rapperswil, 2006
Master Thesis, Hochschule für Technik Rapperswil, 2008-2010

and

Raphael Gfeller
Dipl. Ing. in Informatik, Hochschule für Technik Rapperswil, 2006
Master Thesis, Hochschule für Technik Rapperswil, 2008-2010

*/

#endregion

#region Usings

using System;
using System.Collections.Generic;

#endregion

namespace InterLinq.Base {
	/// <summary>
	/// Implementations of this interface provide a store for the original data of an object.
	/// If an object is not Sebastof-aware, we need to make a backup copy of all data of the object
	/// to compare it later to detect changes.
	/// </summary>
	public interface IChangeTrackingCacheService {
		#region Public Methods

		/// <summary>
		/// Stores the data/state of an object. This is through a field name/value.
		/// There is an outher dictionary per type to speed up performance.
		/// </summary>
		/// <returns></returns>
		Dictionary<Type, Dictionary<object, Dictionary<string, object>>> GetStoreOfNonSebastofObjectsOriginalData();

		#endregion
	}
}